package com.flyduck.service;

import com.flyduck.domain.SysMenu;
import com.flyduck.vo.QueryVo;

import java.util.List;
import java.util.Set;

/**
 * @author flyduck
 */
public interface SysMenuService {
    /**
     * 首页数据
     * @param queryVo
     * @return
     */
    Set<SysMenu> findTree(QueryVo queryVo);

    /**
     * 前端菜单
     * @return
     */
    Set<SysMenu> build();

    /**
     * 保存菜单
     * @param sysMenu
     */
    void save(SysMenu sysMenu);

    /**
     * 更新菜单
     * @param sysMenu
     */
    void update(SysMenu sysMenu);

    /**
     * 根据菜单id删除当前及以下的所有菜单
     * @param id
     */
    void deleteById(Long id);

    /**
     * 根据菜单id查询菜单
     * @param id
     * @return
     */
    SysMenu getMenuById(Long id);

    /**
     * 根据用户id查询所有的菜单
     * @param userId
     * @return
     */
    List<SysMenu> getMenusByUserId(Long userId);
}
